diff --git a/board/davinci/sffsdr/sffsdr.c b/board/davinci/sffsdr/sffsdr.c
index 6e878eb..9296d7b 100644
--- a/board/davinci/sffsdr/sffsdr.c
+++ b/board/davinci/sffsdr/sffsdr.c
@@ -63,10 +63,10 @@
 	lpsc_on(DAVINCI_LPSC_TIMER1);
 	lpsc_on(DAVINCI_LPSC_GPIO);
 
-#if !defined(CFG_USE_DSPLINK)
+#if !defined(CONFIG_SYS_USE_DSPLINK)
 	/* Powerup the DSP */
 	dsp_on();
-#endif /* CFG_USE_DSPLINK */
+#endif /* CONFIG_SYS_USE_DSPLINK */
 
 	/* Bringup UART0 out of reset */
 	REG(UART0_PWREMU_MGMT) = 0x0000e003;
@@ -99,35 +99,35 @@
 	u_int32_t value, mac[2], address;
 
 	/* Read Integrity data structure checkword. */
-	if (i2c_read(CFG_I2C_EEPROM_ADDR, INTEGRITY_CHECKWORD_OFFSET,
-		     CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4))
+	if (i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, INTEGRITY_CHECKWORD_OFFSET,
+		     CONFIG_SYS_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4))
 		goto err;
 	if (value != INTEGRITY_CHECKWORD_VALUE)
 		return 0;
 
 	/* Read SYSCFG structure offset. */
-	if (i2c_read(CFG_I2C_EEPROM_ADDR, INTEGRITY_SYSCFG_OFFSET,
-		     CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4))
+	if (i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, INTEGRITY_SYSCFG_OFFSET,
+		     CONFIG_SYS_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4))
 		goto err;
 	address = 0x800 + (int) value; /* Address of SYSCFG structure. */
 
 	/* Read NET CONFIG structure offset. */
-	if (i2c_read(CFG_I2C_EEPROM_ADDR, address,
-		     CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4))
+	if (i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, address,
+		     CONFIG_SYS_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4))
 		goto err;
 	address = 0x800 + (int) value; /* Address of NET CONFIG structure. */
 	address += 12; /* Address of NET INTERFACE CONFIG structure. */
 
 	/* Read NET INTERFACE CONFIG 2 structure offset. */
-	if (i2c_read(CFG_I2C_EEPROM_ADDR, address,
-		     CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4))
+	if (i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, address,
+		     CONFIG_SYS_I2C_EEPROM_ADDR_LEN, (uint8_t *) &value, 4))
 		goto err;
 	address = 0x800 + 16 + (int) value;	/* Address of NET INTERFACE
 						 * CONFIG 2 structure. */
 
 	/* Read MAC address. */
-	if (i2c_read(CFG_I2C_EEPROM_ADDR, address,
-		     CFG_I2C_EEPROM_ADDR_LEN, (uint8_t *) &mac[0], 8))
+	if (i2c_read(CONFIG_SYS_I2C_EEPROM_ADDR, address,
+		     CONFIG_SYS_I2C_EEPROM_ADDR_LEN, (uint8_t *) &mac[0], 8))
 		goto err;
 
 	buf[0] = mac[0] >> 24;
@@ -140,7 +140,7 @@
 	return 1; /* Found */
 
 err:
-	printf("Read from EEPROM @ 0x%02x failed\n", CFG_I2C_EEPROM_ADDR);
+	printf("Read from EEPROM @ 0x%02x failed\n", CONFIG_SYS_I2C_EEPROM_ADDR);
 	return 0;
 }
 
@@ -156,10 +156,10 @@
 	dv_display_clk_infos();
 
 	/* Configure I2C switch (PCA9543) to enable channel 0. */
-	i2cbuf = CFG_I2C_PCA9543_ENABLE_CH0;
-	if (i2c_write(CFG_I2C_PCA9543_ADDR, 0,
-		      CFG_I2C_PCA9543_ADDR_LEN, &i2cbuf, 1)) {
-		printf("Write to MUX @ 0x%02x failed\n", CFG_I2C_PCA9543_ADDR);
+	i2cbuf = CONFIG_SYS_I2C_PCA9543_ENABLE_CH0;
+	if (i2c_write(CONFIG_SYS_I2C_PCA9543_ADDR, 0,
+		      CONFIG_SYS_I2C_PCA9543_ADDR_LEN, &i2cbuf, 1)) {
+		printf("Write to MUX @ 0x%02x failed\n", CONFIG_SYS_I2C_PCA9543_ADDR);
 		return 1;
 	}
 
